/* eslint valid-jsdoc: "off" */

/**
 * @param {Egg.EggAppInfo} appInfo app info
 */
module.exports = (appInfo) => {
  /**
   * built-in config
   * @type {Egg.EggAppConfig}
   **/
  const config = (exports = {})

  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + '_1757917680712_4595'

  // 在中间件最前面统计请求时间
  // config.coreMiddleware.unshift("report");

  // 配置需要的中间件，数组顺序即为中间件的加载顺序
  config.middleware = ['gzip', 'errorHandler', 'responseFormat']

  // 错误处理中间件配置
  config.errorHandler = {
    // 配置中间件启用条件
    enable: true,
    // match 和 ignore 不允许同时配置。
    // 匹配路径
    match: '/api'
    // 忽略路径
    // ignore: []
  }

  // 响应格式化中间件配置
  config.responseFormat = {
    enable: true,
    // match 和 ignore 不允许同时配置。
    match: '/Jian'
    // ignore: [
    //   '/api/download', // 忽略文件下载接口
    //   '/api/export'    // 忽略导出接口
    // ]
  }

  // 删除security
  config.security = {
    csrf: {
      enable: false
    }
  }
  // add your user config here
  const userConfig = {
    mysql: {
      // 单数据库信息配置
      client: {
        // host
        host: '47.113.112.33',
        // 端口号
        port: '3306',
        // 用户名
        user: 'Julia',
        // 密码
        password: 'Jianzy123',
        // 数据库名
        database: 'julia'
      },
      // 是否加载到 app 上，默认开启
      app: true,
      // 是否加载到 agent 上，默认关闭
      agent: false
    },
    // 配置 gzip 中间件的配置
    gzip: {
      threshold: 1024 // 小于 1k 的响应体不压缩
    }
    // myAppName: 'egg',
  }

  return {
    ...config,
    ...userConfig
  }
}
